package cn.centec.mall.util;

import cn.centec.core.constant.RequestMethod;
import cn.centec.core.entity.Result;
import cn.centec.core.entity.StandardReceiveParam;
import cn.centec.core.entity.StandardRequestParam;
import cn.centec.mall.entity.StandardIssueChangeParam;
import cn.centec.mall.entity.StandardOrderChangeParam;
import org.springframework.transaction.annotation.Transactional;

/**
 * 采购中心AIP工具 - 接收处理器 - 商城业务
 *
 * @author 延晓磊
 * @since 2022年11月04日
 */
public class Centec6MallReceiveHandler {

    /**
     * 处理请求
     *
     * @param param
     * @return
     *
     * @author 延晓磊
     * @since 2022年11月04日
     */
    @Transactional
    public Result handle(StandardRequestParam param){
        switch (param.getMethod()) {
            case RequestMethod.Mall.Receive.ORDER_CHANGE:
                // 变更订单
                return this.changeOrder(StandardReceiveParam.build(param.getParam(), StandardOrderChangeParam.class));
            case RequestMethod.Mall.Receive.ISSUE_CHANGE:
                // 变更售后
                return this.changeOrder(StandardReceiveParam.build(param.getParam(), StandardOrderChangeParam.class));
            default:
                return Result.error("接口不存在");
        }
    }

    /**
     * 变更订单
     *
     * @param param
     * @return 200表示成功，非200时会间隔重试
     *
     * @author 延晓磊
     * @since 2023年04月14日
     */
    protected Result changeOrder(StandardOrderChangeParam param){
        return null;
    }

    /**
     * 变更售后
     *
     * @param param
     * @return 200表示成功，非200时会间隔重试
     *
     * @author 延晓磊
     * @since 2023年04月14日
     */
    protected Result changeIssue(StandardIssueChangeParam param){
        return null;
    }
}
